package com.cskaoyan.javase.array._2memory;

/**
 * 数组的静态初始化
 * 总结:
 *      1.引用数据类型局部变量 = 栈上引用 + 堆上对象
 *        对象中的引用数据类型变量 = 对象中的引用 + 堆上的另一个对象
 *
 *      2.静态初始化虽然明确指出了元素取值,但是默认初始化具有默认值的过程
 *          仍然不能省略
 *          扩展:
 *          对于Java面向对象来说,任何对象中的元素/属性/变量等,它的赋值手段可以
 *          有很多,但是默认初始化具有默认值永远是最先进行的.
 *          这是程序设定的安全机制,避免出现变量没有取值但是却需要访问的情况.
 *
 * @since 11:03
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo3 {
    public static void main(String[] args) {
        String[] arr = {"123", "666"};
        System.out.println(arr);
        System.out.println(arr[0]);
        arr[0] = "777";
        System.out.println(arr[0]);
        System.out.println(arr.length);

        int a;
        // Variable 'a' might not have been initialized
        // System.out.println(a);

        double[] arr2 = new double[2];
        System.out.println(arr2[0]);

        char[] arr3 = new char[3];
        // "\\u0000"
        System.out.println(arr3[0]);
        System.out.println(arr3[1]);
        System.out.println(arr3[2]);

        boolean[] arr4 = new boolean[3];
        System.out.println(arr4[0]);
    }
}
